1、计算角度前首先要把经纬度坐标转换成地图容器坐标

// 计算两点间的角度
function calcAngle(start, end) {
    var p_start = map.lngLatToContainer(start),
        p_end = map.lngLatToContainer(end);
    var diff_x = p_end.x - p_start.x,
        diff_y = p_end.y - p_start.y;
    return 360*Math.atan2(diff_y, diff_x)/(2*Math.PI)+90;
}

调用

calcAngle([88.926756, 42.37309], [119.687036, 29.6309]);

方法是固定的,可以延伸到其他地图上用。。。

2、根据百分比计算当前坐标

var lastCoord = [2, 10],
    dstCoord = [10, 30],
    percent = 0.5,
    curCoord;
    
if(percent == 0.5) {
    curCoord = [(10+2)/2, (30+10)/2];
} else {
    curCoord = [(10-2)*percent+2, (30-10)*percent+10];
} 

anchovy
1.9k 声望89 粉丝